//
//  DMAdjustAttributionInfo.h
//  DualMediationSDK
//
//  Created by YeJary on 2025/1/5.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

/**
 * Adjust归因信息模型类
 * 用于存储和管理Adjust归因相关的信息
 */
@interface DMAdjustAttributionInfo : NSObject

/// 推广活动名称
@property (nonatomic, copy, nullable) NSString *campaign;

/// 素材名称
@property (nonatomic, copy, nullable) NSString *creative;

/// 网络名称
@property (nonatomic, copy, nullable) NSString *network;

/// 广告组名称
@property (nonatomic, copy, nullable) NSString *adgroup;

/// 是否为自然流量
@property (nonatomic, assign) BOOL isOrganic;

/**
 * 从ADJAttribution对象创建DMAdjustAttributionInfo实例
 * @param attribution Adjust SDK的归因对象
 * @return DMAdjustAttributionInfo实例
 */
+ (instancetype)attributionInfoWithADJAttribution:(id)attribution;

/**
 * 使用ADJAttribution对象初始化DMAdjustAttributionInfo实例
 * @param attribution Adjust SDK的归因对象
 * @return 初始化的DMAdjustAttributionInfo实例
 */
- (instancetype)initWithADJAttribution:(id)attribution;

/**
 * 获取归因信息的字典表示
 * @return 包含所有归因信息的字典
 */
- (NSDictionary *)toDictionary;

/**
 * 获取归因信息的字符串描述
 * @return 归因信息的描述字符串
 */
- (NSString *)description;

@end

NS_ASSUME_NONNULL_END